import request from '@/utils/request'
/**
 * 获取新的商品信息 包括最新价格，库存，是否有效
 * @param {String} skuId - 商品skuId
 * @returns Promise
 */
export const getNewCartGoods = (skuId) => {
  return request(`/goods/stock/${skuId}`, 'get')
}
/**
 * 获取购物车中商品的specs和sku
 * @param {String} skuId - 商品skuId
 * @returns Promise
 */
export const getSpecsAndSkus = (skuId) => {
  return request(`/goods/sku/${skuId}`, 'get')
}
/**
 * 登录后合并购物车
 * @param {Array<object>} cartList -本地购物车数组
 * @param {String} skuId - 商品skuId
 * @param {Boolean} item.selected - 是否选中
 * @param {Integer} item.count - 数量
 */
export const mergeLocalCart = (cartList) => {
  return request('/member/cart/merge', 'post', cartList)
}
/**
 * 登录后获取购物车列表
 * @returns Promise
 */
export const findCartList = () => {
  return request('/member/cart', 'get')
}
/**
 * 登录后加入购物车
 * @param {String} skuId - 商品skuId
 * @param {Integer} count - 商品数量
 * @returns Promise
 */
export const insertCart = ({ skuId, count }) => {
  return request('/member/cart', 'post', { skuId, count })
}
/**
 * 登录后删除购物车商品
 * @param {Arrary<string>} ids - skuId的集合
 * @returns Promise
 */
export const deleteCart = (ids) => {
  return request('/member/cart', 'delete', { ids })
}
/**
 * 登录后修改购物车中商品的状态和数量
 * @param {String} skuId - 商品skuId
 * @param {Boolean} item.selected - 是否选中
 * @param {Integer} item.count - 数量
 */
export const updateCart = (goods) => {
  return request('/member/cart/' + goods.skuId, 'put', goods)
}
/**
 * 登录后购物车中商品的全选反选
 * @param {Arrary<string>} ids - skuId的集合
 * @param {Boolean} selected - 是否选中状态
 */
export const checkAllCart = ({ selected, ids }) => {
  return request('/member/cart/selected', 'put', { selected, ids })
}
